import type { REPORT_FORM_ID, REPORT_ID } from '@/enum'

/** 加载报表数据参数体 */
export interface LoadReportDataParams {
  /** 报表ID */
  id: number
  /** 分表ID-针对主要耗能设备统计表的分表ID */
  formId?: number
}

/** 加载报表数据返回体 */
export interface LoadReportDataResponse {
  id: number
  subsidiaryName: string
  subsidiaryRegion: string
  socialCreditCode: string
  year: string
  month: string
  status: string
  webReportData: string
  webReportFormat: string
}

export interface SaveReportBaseParams {
  id?: number
  /** 子公司名称 */
  subsidiaryName: string
  /** 子公司所在区域 */
  subsidiaryRegion: string
  /** 社会信用代码 */
  socialCreditCode: string
  /** 报告所属年 */
  year: string
  /** 报告所属月 */
  month: string
  /** 保存或保存并上报 0-保存，1-保存并上报 */
  saveType: 0 | 1
}

export interface SaveParams {
  saveType: 0 | 1
  beforeSaveFn?: (
    /** 报表ID */
    reportId?: REPORT_ID,
    /** FormId */
    formId?: REPORT_FORM_ID,
    /** 报表数据 */
    data?: any,
  ) => Promise<boolean>
  afterSaveFn?: (
    /** 报表ID */
    reportId?: REPORT_ID,
    /** FormId */
    formId?: REPORT_FORM_ID,
    /** 报表数据 */
    data?: any,
    /** 保存后返回的id */
    id?: number
  ) => void
}

export interface SaveFnParams {
  socialCreditCode: string
  subsidiaryName: string
  subsidiaryRegion: string
  year: number
  month: number
  id: number | undefined
  userName: string | undefined
}
